#ifndef WEATHER_JSON_H
#define WEATHER_JSON_H

#include <QWidget>
#include <QByteArray>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QUrlQuery>

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDate>
#include <QVector>

struct WeatherData {
    QString week;        // 星期
    int highTemp;        // 高温温度
    int lowTemp;         // 低温温度
    QString type;        // 天气类型
    QString highTempStr; // 高温字符串
    QString lowTempStr;  // 低温字符串
};

class weather_json: public QWidget
{
    Q_OBJECT
public:
    weather_json(QWidget *parent = nullptr);
    // 网络访问对象
    QNetworkAccessManager * mNetAccessManager;
public:
    QVector<WeatherData> handle_json(const QByteArray& bytearr);
private slots:
    void Network_finished(QNetworkReply *reply);
signals:
    void weatherDataUpdated(const QVector<WeatherData> &weatherData);
private:
    void processWeatherData(const QByteArray& bytearr)
    {
        QVector<WeatherData> weatherData = handle_json(bytearr.data());
        // 发射信号，传递数据
        emit weatherDataUpdated(weatherData);
    }
};

#endif // WEATHER_JSON_H
